#include "colorMapper.h"
#include <math.h>

colorMapper::colorMapper(void)
{
}


colorMapper::~colorMapper(void)
{
}
void colorMapper::generateColorMap()
{
	int index = 1;
	for (int i = 0 ;i<=254;i=i++)
	{
		rgb temp_rgb;
		temp_rgb.r = 0 ;
		temp_rgb.b = 255;
		temp_rgb.g = i;
		this->colorMap.insert(pair<int,rgb>(index,temp_rgb));
		index++;

	}
	for (int i = 254 ;i>=0;i=i--)
	{
		rgb temp_rgb;
		temp_rgb.r = 0 ;
		temp_rgb.b = i;
		temp_rgb.g = 255;
		this->colorMap.insert(pair<int,rgb>(index,temp_rgb));
		index++;

	}
	for (int i = 0 ;i<=254;i=i++)
	{
		rgb temp_rgb;
		temp_rgb.r = i ;
		temp_rgb.b = 0;
		temp_rgb.g = 255;
		this->colorMap.insert(pair<int,rgb>(index,temp_rgb));
		index++;

	}
	for (int i = 254 ;i>=0;i=i--)
	{
		rgb temp_rgb;
		temp_rgb.r = 255 ;
		temp_rgb.b = 0;
		temp_rgb.g = i;
		this->colorMap.insert(pair<int,rgb>(index,temp_rgb));
		index++;

	}
}
colorMapper::rgb colorMapper::getColor(int min,int max,int value)
{
	int mapcount = this->colorMap.size();
	float ratio = ((float)(mapcount-1))/((float)(max-min));
	int tempvalue = (int)floor((value-min)*ratio+1);
	return (this->colorMap.find(tempvalue)->second);
}